Skip to content

[DRAFT] Add a CODEOWNERS file designating oversight of certain Evolution repo content to relevant teams #2938

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

stmontgomery
Copy link
Contributor

@stmontgomery stmontgomery commented Aug 10, 2025

This PR adds a GitHub CODEOWNERS file to this repo, assigning ownership and oversight responsibilities for certain content to relevant teams. But (importantly) it leaves the top-level /proposals directory without a specific owner.

Note: This PR is a draft currently, and I intend to discuss this with the relevant teams before proceeding.

Motivation: This originally came up because some of us on the Testing Workgroup would like to have greater awareness of PRs which modify proposals and other files related to Swift Testing. When I discovered that there was no CODEOWNERS file I drafted the file posted here, which assigns ownership of a few other important files and directories in the repo to people or teams I believe are responsible for them as well. The exact owners listed are of course up for discussion!

My understanding of CODEOWNERS files in GitHub (per documentation) is that this file alone will not prevent anyone from landing a PR, even if none of the code owners listed have approved it. To begin enforcing such a rule, this repo would need to enable branch protection, and I'm unsure whether that is enabled currently. So this PR, on its own, is not intended to restrict any PRs, although that is a policy we could consider separately.

@stmontgomery stmontgomery self-assigned this Aug 10, 2025
@stmontgomery stmontgomery added evolution process A change to the meta-content of evolution, e.g. the process documentation or templates TWG Contains topics under the domain of the Testing Workgroup ESG Contains topics under the domain of the Ecosystem Steering Group LSG Contains topics under the domain of the Language Steering Group labels Aug 10, 2025
@stmontgomery stmontgomery changed the title [DRAFT] Add a CODEOWNERS file designating oversight of certain Evolution repo directories to relevant teams [DRAFT] Add a CODEOWNERS file designating oversight of certain Evolution repo content to relevant teams Aug 11, 2025
# The top-level "proposals" directory.
#
# This does not have a designated owner, so its list is empty.
/proposals/
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
/proposals/
/proposals/ @swiftlang/ecosystem-steering-group @swiftlang/language-steering-group @swiftlang/platform-steering-group @swiftlang/core-team

Let's start with top level reviewer to be the steering groups and core team.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. My only concern is that the top-level /proposals directory is fairly high-traffic today, and specifying multiple teams as its code owners might be noisy for the members of those teams since (presumably) they will become default reviewers for each new PR in that space. So I guess it's up to those teams to decide whether they want that.

Copy link
Contributor

@rjmccall rjmccall left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Our directory structure doesn't really follow the workgroup structure, which doesn't make this easy, sorry. I wonder if we can make a user group that's, like, the chairs of all the various evolution workgroups, so that we'd at least be spamming fewer people.

### Evolution process documentation

# The primary Swift Evolution process documentation file.
/process.md @rjmccall
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel a little uncomfortable claiming code ownership of this, even if I am in fact likely to be involved with any changes to it.

# The top-level "visions" directory.
#
# Approval from the Core Team is required to add a new vision document.
/visions/ @swiftlang/core-team
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not actually true; visions are products of the evolution workgroups just like proposals are. It's just not as high-traffic as proposals/ is.

# The top-level "proposal-templates" directory.
#
# Approval from the Core Team is required to add a new proposal template.
/proposal-templates/ @swiftlang/core-team
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again, this is something that individual evolution workgroups are empowered to do.

@stmontgomery
Copy link
Contributor Author

I wonder if we can make a user group that's, like, the chairs of all the various evolution workgroups, so that we'd at least be spamming fewer people.

I like that idea a lot, actually! One of my concerns (voiced in this comment too) is having this change begin spamming whole workgroups, when the intention is just to ensure some modest amount of visibility and having at least one representative from each workgroup could achieve that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ESG Contains topics under the domain of the Ecosystem Steering Group evolution process A change to the meta-content of evolution, e.g. the process documentation or templates LSG Contains topics under the domain of the Language Steering Group TWG Contains topics under the domain of the Testing Workgroup
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants